<!--医院等级组件-->
<template>
  <div class="level">
    <h1>医院</h1>
    <div class="content">
      <div class="left">等级:</div>
      <ul class="hospital">
        <li :class="{active:activeFlag==''}" @click="changeLevel('')" >全部</li>
        <li v-for="level in levelArr" :key="level.value" :class="{active:activeFlag==level.value}" @click="changeLevel(level.value)">{{level.name}}</li>
      </ul>
    </div>
  </div>
</template>

<script setup lang="ts">
import {reqHospitalLevelAndRegion} from "@/api/home";
import {HospitalLevelAndRegionResponseData,HospitalLevelAndRegionArr} from "@/api/home/type.ts";
import {onMounted, ref,} from "vue";
//自定义事件触发器
const $emits = defineEmits (["getLevel"]);
//医院等级
let levelArr = ref<HospitalLevelAndRegionArr>();
//控制医院等级
let activeFlag = ref<string>("");
//当组件挂载完毕
onMounted(()=>{
  getLevel();
});
//获取医院等级
const getLevel = async ()=> {
  let result:HospitalLevelAndRegionResponseData = await reqHospitalLevelAndRegion("HosType")
  //存储医院等级的数据
  if (result.code === 200) {
    levelArr.value = result.data;
  }
};

//点击等级按钮的回调
const changeLevel = (level: string) => {
  //高亮响应式数据存储Level值
  activeFlag.value = level;
  //触发自定义事件:将医院等级和区域的数据回传给父组件
  $emits("getLevel",level);
};

</script>

<script lang="ts" >
  export default {name:"Level"}
</script>

<style scoped lang="scss">
.level {
  color: #7f7f7f;
  h1{
    font-weight: 900;
    margin: 10px 0px;
  }
  .content {
    display: flex;
    .left {
      margin-right: 10px;
    }
    .hospital {
      display: flex;
      li{
        margin-right: 10px;
        &.active {
          color: #55a6fe;
        }
      }
      li:hover {
        color: #55a6fe;
        cursor: pointer;
      }
    }
  }
}
</style>
